package com.zenithmind.classroom.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 课程统计VO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "课程统计VO")
public class CourseStatisticsVO {

    /**
     * 课程ID
     */
    @Schema(description = "课程ID", example = "1234567890")
    private String courseId;

    /**
     * 课程标题
     */
    @Schema(description = "课程标题", example = "Java从入门到精通")
    private String courseTitle;

    /**
     * 总学习人数
     */
    @Schema(description = "总学习人数", example = "1000")
    private Long totalStudents;

    /**
     * 完成人数
     */
    @Schema(description = "完成人数", example = "800")
    private Long completedStudents;

    /**
     * 完成率
     */
    @Schema(description = "完成率", example = "80.0")
    private Double completionRate;

    /**
     * 平均学习进度
     */
    @Schema(description = "平均学习进度", example = "75.5")
    private Double averageProgress;

    /**
     * 总学习时长（小时）
     */
    @Schema(description = "总学习时长（小时）", example = "5000")
    private Long totalStudyHours;

    /**
     * 平均学习时长（小时）
     */
    @Schema(description = "平均学习时长（小时）", example = "5.0")
    private Double averageStudyHours;

    /**
     * 总观看次数
     */
    @Schema(description = "总观看次数", example = "10000")
    private Long totalViews;

    /**
     * 平均评分
     */
    @Schema(description = "平均评分", example = "4.5")
    private Double averageRating;

    /**
     * 评价数量
     */
    @Schema(description = "评价数量", example = "200")
    private Long reviewCount;

    /**
     * 收藏数量
     */
    @Schema(description = "收藏数量", example = "150")
    private Long favoriteCount;

    /**
     * 本周新增学习人数
     */
    @Schema(description = "本周新增学习人数", example = "50")
    private Long weeklyNewStudents;

    /**
     * 本月新增学习人数
     */
    @Schema(description = "本月新增学习人数", example = "200")
    private Long monthlyNewStudents;

    /**
     * 活跃学习人数（最近7天）
     */
    @Schema(description = "活跃学习人数（最近7天）", example = "300")
    private Long activeStudents;

    /**
     * 章节完成统计
     */
    @Schema(description = "章节完成统计")
    private String chapterCompletionStats;

    /**
     * 课时完成统计
     */
    @Schema(description = "课时完成统计")
    private String lessonCompletionStats;

    /**
     * 学习设备分布
     */
    @Schema(description = "学习设备分布")
    private String deviceDistribution;

    /**
     * 学习时间分布
     */
    @Schema(description = "学习时间分布")
    private String timeDistribution;
}
